Skip to content

feat: replace static icons with logo.dev + Vercel Blob sync#417

Merged
brendanjryan merged 4 commits into
mainfrom
brendan/simplified-logos
Mar 23, 2026
Merged

feat: replace static icons with logo.dev + Vercel Blob sync#417
brendanjryan merged 4 commits into
mainfrom
brendan/simplified-logos

Conversation

@brendanjryan

Copy link
Copy Markdown
Collaborator

Simplified alternative to #410.

What changed

  • scripts/sync-logos.ts — single script fetches logos from logo.dev, detects transparency/light backgrounds via PNG pixel decoding, uploads to Vercel Blob, writes _manifest.json
  • .github/workflows/sync-logos.yml — runs sync on push to main when discovery.json changes (+ manual trigger). No cron.
  • /api/icon — simplified to read-only from Vercel Blob, 404 on miss
  • /api/icon-manifest — new endpoint serving transparency/lightBg metadata
  • Components — use manifest-based invert for dark mode instead of CSS --icon-invert var
  • Deletedpublic/icons/*.svg (67 files), scripts/gen-icons.cjs, CI icon freshness check

Dropped from #410

  • Vercel cron job (replaced with GH Actions on deploy)
  • Font rename (VTCDuBoisTrialVTCDuBois)
  • OG image generation
  • Client-side logo.dev fallback
  • brand.mdx service logos section
  • Multi-stage icon cascade

Setup

Add these secrets to the repo:

  • BLOB_READ_WRITE_TOKEN (already exists)
  • LOGODEV_PUBLIC_KEY

Then trigger the sync workflow manually for initial seed, or push a discovery.json change.

@vercel

vercel Bot commented Mar 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mpp Ready Ready Preview, Comment Mar 23, 2026 7:31pm

Request Review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

- Add scripts/sync-logos.ts to fetch logos from logo.dev and upload to Vercel Blob
- Add GitHub Actions workflow to run sync on deploy (when discovery.json changes)
- Add /api/icon-manifest endpoint for transparency/lightBg metadata
- Simplify /api/icon to read-only from blob (404 on miss)
- Use manifest-based invert instead of CSS var for dark mode icons
- Delete public/icons/ static SVGs and scripts/gen-icons.cjs
- Remove gen-icons.cjs CI freshness check
…erting

- Restore public/icons/*.svg as fallback when Vercel Blob is unavailable
- /api/icon: blob → static file → letter SVG (never 404)
- /api/icon: log warnings on blob miss for observability
- sync-logos.ts: add --dry-run flag, structured JSON summary output
- sync-logos.yml: add weekly cron for self-healing
- sync-logos.yml: add job summary table and fail on sync errors
…lor fill)

Remove baked-in dark backgrounds and hardcoded fill colors from static
SVG fallbacks so they render correctly in both light and dark mode.
Also update the letter SVG fallback in /api/icon to match.
@brendanjryan brendanjryan merged commit 44b76f8 into main Mar 23, 2026
8 checks passed
@brendanjryan brendanjryan deleted the brendan/simplified-logos branch March 23, 2026 19:12
@achalvs

achalvs commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants